# audioPlayerTermPy

**audioPlayerTerm** — это терминальный аудиоплеер для Linux, написанный на Python. Программа позволяет воспроизводить аудиофайлы, управлять громкостью (включая системную и наушники), просматривать метаданные треков и навигировать по файловой системе через удобный текстовый интерфейс, построенный с использованием библиотеки `urwid`.

## Возможности

- **Воспроизведение аудио**: Поддержка форматов MP3, WAV, OGG, FLAC, AAC, M4A, WMA, OPUS.
- **Плейлист**: Автоматическое создание плейлиста из аудиофайлов в текущей директории с возможностью перехода к следующему треку.
- **Управление громкостью**: Регулировка громкости через `pygame.mixer`, системной громкости и громкости левого/правого наушника через `amixer`.
- **Метаданные**: Отображение информации о треке (длительность, битрейт, каналы, частота дискретизации, теги).
- **Навигация**: Просмотр файлов и папок, переход по директориям с сохранением истории.
- **Интерфейс**: Интуитивный текстовый интерфейс с прогресс-баром, индикаторами громкости и часами.
- **Гибкость**: Возможность запуска с указанием файла или директории через аргумент командной строки.

## Требования

- **Операционная система**: Linux (тестировалось на системах с `amixer`).
- **Python**: Версия 3.6 или выше.
- **Зависимости**:
  - `urwid` — для построения текстового интерфейса.
  - `pygame` — для воспроизведения аудио.
  - `mutagen` — для чтения метаданных аудиофайлов.
  - `amixer` (часть пакета `alsa-utils`) — для управления системной громкостью.

## Установка

1. **Клонируйте репозиторий**:
   ```bash
   git clone https://github.com/<ваш-username>/audioPlayerTerm.git
   cd audioPlayerTerm
   sudo cp audioPlayerTerm.py /usr/local/bin/audioPlayerTerm.py
   sudo chmod +x /usr/local/bin/audioPlayerTerm.py

## Использование

### Управление:
- **Навигация**:
  - `←` — Перейти в родительскую директорию.
  - `→` — Вернуться назад по истории директорий.
  - `↑`/`↓` — Перемещение по списку файлов.
  - `Enter` — Открыть папку или воспроизвести файл.
  - `Пробел` — Воспроизвести все аудиофайлы в текущей директории как плейлист.
- **Воспроизведение**:
  - `p` — Пауза/возобновление.
  - `s` — Остановить воспроизведение.
  - `r` — Перезапустить текущий трек.
  - `n` — Следующий трек.
- **Громкость**:
  - `+`/`-` — Увеличить/уменьшить громкость (`pygame`).
  - `i`/`d` — Увеличить/уменьшить системную громкость.
  - `c`/`g` — Увеличить/уменьшить громкость левого наушника.
  - `a`/`b` — Увеличить/уменьшить громкость правого наушника.
  - `e`/`f` — Увеличить/уменьшить громкость обоих наушников.
- **Прочее**:
  - `h` — Показать справку.
  - `q`/`Q` — Выйти из программы.

### Интерфейс:
- **Верхняя панель**: Путь к текущей директории.
- **Левая часть**: Список файлов и папок, прогресс воспроизведения.
- **Правая часть**: Метаданные трека или справка.
- **Нижняя панель**: Время воспроизведения, текущие часы, статус, индикаторы громкости (системная, наушники).

## Репозитории
- **Codeberg**:     [audioPlayerTermPy](https://codeberg.org/Grannik/audioPlayerTermPy)
- **GitHub**:       [audioPlayerTermPy](https://github.com/Grannik/audioPlayerTermPy)
- **GitLab**:       [audioPlayerTermPy](https://gitlab.com/grannik/audioplayertermpy)
- **SourceForge**:  [audioPlayerTermPy](https://sourceforge.net/projects/audioplayertermpy/files/)
- **NotABug**:      [audioPlayerTermPy]()
- **Gitea (Demo)**: [audioPlayerTermPy]()
- **Gogs (Demo)**:  [audioPlayerTermPy]()


